/*****************************************************************
 MYD Engine v0.1

 File: myd_texture.h
 Created: 26/06/09
*****************************************************************/

#ifndef MYD_TEXTURE_H
#define MYD_TEXTURE_H

#include "system/myd_system.h"

namespace myd
{
	class MYD_API Texture
	{
		DECLARE_SMART_POINTER(Texture);

		//constroyer / destroyer
		public:
			Texture(std::string fileName, unsigned long ulColor);
			
			Texture (std::string name, 
					unsigned int uiWidth, 
					unsigned int uiHeight,
					unsigned int uiPixelDepth, 
					char* acData
			);

			~Texture();

		//accessors
			unsigned int getWidth() const;
			unsigned int getHeight() const;
			
			void setWidth(unsigned int uiWidth);
			void setHeight(unsigned int uiHeight);

			std::string getFilename() const;
			unsigned long getColorkey() const;

			char* getData ();

		//properties
		private:
			unsigned long m_ulColor;
			unsigned int m_uiWidth;
			unsigned int m_uiHeight;
			unsigned int m_uiPixelDepth;
			std::string wn_fileName;
			char* m_acData;
	};
#include "myd_texture.inl"
}//end namespace
#endif //MYD_TEXTURE_H